Home Service Robot

Basic Requirements

Criteria Meet Specification

Include in your project submission your catkin_ws/src directory. Your directory must contain the official ROS packages you downloaded, your C++ packages and nodes, your world files, and shell scripts.

The student submitted all required files specified in the criteria.

Environment

Criteria Meet Specification

Design a simple environment with the Building Editor tool in Gazebo. Customize your environment with color or texture.

The student designed their environment and stored it in the World directory of their catkin_ws/src.

Robot Model

Criteria Meet Specification

Use the turtlebot for this project or customize your own robot with an RGB-D camera or laser sensor. This robot can be an extension of your previous work.

The robot should not intersect with walls of your environment in gazebo.

Special specs for customized robots:

  • The robot model should be a mobile robot comprising of a base, at least two actuators, and an RGB-D camera, or a laser sensor.
  • The model should have corresponding URDF and Gazebo files in the package directory.
  • The URDF and Gazebo files should include all the commands/code necessary for building that particular robot.

Mapping

Criteria Meet Specification

Manually test SLAM with a robot inside your customized environment.

The student should write a test_slam.sh script file and launch it to manually test SLAM.

Write a wall follower node that will autonomously map your environment.

  • The student should create a wall_follower node that will autonomously drive their robot.
  • The student should write a wall_follower.sh script file and launch it to autonomously perform SLAM.

Save a map of your environment.

The student should have both a pgm and yaml files in the World directory of their catkin_ws/src.

Navigation

Criteria Meet Specification

Manually test navigation with your robot inside your environment. Use the 2D Nav Goal in rviz and command your robot to navigate to two different locations.

The student should write a test_navigation.sh script file and launch it to manually test navigation.

Write a node that will communicate with the ROS navigation stack and autonomously send two goals for your robot to reach.

  • The student should write a pick_objects.sh file that will send multiple goals for the robot to reach.
  • The robot has to travel to the desired pickup zone, display a message that it reached its destination, wait 5 seconds, travel to the desired drop off zone, and display a message that it reached the drop off zone.

Markers

Criteria Meet Specification

Model a virtual object with markers in rviz.

  • The student should write a add_marker.sh file that will publish a marker to rviz.
  • The marker should initially be published at the pickup zone. After 5 seconds it should be hidden. Then after another 5 seconds it should appear at the drop off zone.

Home Service Robot

Criteria Meet Specification

Edit your add_markers node, subscribe to your robot odometry, and then publish the markers with respect to your robot position.

  • The student should write a home_service.sh file that will run all the nodes in this project.

Your home service robot should be simulated as follow:

  • Initially show the marker at the pickup zone.
  • Hide the marker once your robot reach the pickup zone.
  • Wait 5 seconds to simulate a pickup.
  • Show the marker at the drop off zone once your robot reaches it.

Tips to make your project standout:

Stand out submissions should have a customized robot, a complicated environment with multiple rooms, and high accuracy map.